/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package WS;

import beans.Bean;
import beansSerializable.Lista;
import beansSerializable.PacienteSerializable;
import beansSerializable.TurnoEntreFechasSerializable;
import beansSerializable.TurnoPacienteSerializable;
import beansSerializable.TurnosDisponiblesSerializable;
import daos.Dao;
import daos.DaoFactory;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.jws.WebMethod;
import javax.jws.WebService;

/**
 *
 * @author C
 */
@WebService(serviceName = "PrestadoraWS1")
public class PrestadoraWS1 {
    private String db = "dbPrestadora1";    

        
    @WebMethod(operationName = "buscarTurnos")
     public List <TurnosDisponiblesSerializable> buscarTurnos( TurnoEntreFechasSerializable fechas ){
        try {
            Dao dao = DaoFactory.getDao("TurnoDisponible",db);            
            ArrayList<Bean> listaTurnoBean =  (ArrayList<Bean>) dao.select(fechas.getBean());           
                Lista listaS= new Lista ();
                List <TurnosDisponiblesSerializable> listaTurno= new ArrayList<>();
                listaTurno=listaS.listarTurnoDisponibles(listaTurnoBean);
                return  listaTurno;            
            } catch (Exception ex) {
            Logger.getLogger(PrestadoraWS1.class.getName()).log(Level.SEVERE, null, ex);
            }
        return null;
    }   
    
     @WebMethod(operationName = "buscarTurnosDisponible")
     public List <TurnosDisponiblesSerializable> buscarTurnosDisponibles(){
        try {
            System.out.println("LLEgo al ws prestasora");
            Dao dao = DaoFactory.getDao("TurnoDisponible",db);            
            ArrayList<Bean> listaTurnoBean =  (ArrayList<Bean>) dao.select(null);           
                Lista listaS= new Lista ();
                List <TurnosDisponiblesSerializable> listaTurno= new ArrayList<>();
                listaTurno=listaS.listarTurnoDisponibles(listaTurnoBean);
                return  listaTurno;            
            } catch (Exception ex) {
            Logger.getLogger(PrestadoraWS1.class.getName()).log(Level.SEVERE, null, ex);
            
            }
        return null;
    }    
    
    @WebMethod(operationName = "registrarPaciente")
     public int registrarPaciente( PacienteSerializable p ){
        try {
            Dao dao = DaoFactory.getDao("Paciente",db);            
            return (int)dao.insert(p.getBean()); //PacienteBean                    
            } catch (Exception ex) {
            Logger.getLogger(PrestadoraWS1.class.getName()).log(Level.SEVERE, null, ex);
            }
        return -1;
    }
    
    @WebMethod(operationName = "asiganarTurnoPaciente")
     public int asiganarTurnoPaciente( TurnoPacienteSerializable p ){
        try {
            Dao dao = DaoFactory.getDao("Turno",db);            
            return (int)dao.insert(p.getBean()); //PacienteBean                    
            } catch (Exception ex) {
            Logger.getLogger(PrestadoraWS1.class.getName()).log(Level.SEVERE, null, ex);
            }
        return -1;
    }
    
     @WebMethod(operationName = "desasiganarTurnoPaciente")
     public int desasiganarTurnoPaciente( TurnoPacienteSerializable p ){
        try {
            Dao dao = DaoFactory.getDao("Turno",db);            
            dao.delete(p.getBean()); //PacienteBean   
            return 0;
            } catch (Exception ex) {
            Logger.getLogger(PrestadoraWS1.class.getName()).log(Level.SEVERE, null, ex);
            }
        return -1;
    }
    
   
    
}
